package com.zzx.project.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzx.project.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Repository
public interface UserDao extends BaseMapper<User> { //用户Dao，由于方法较多，故用方法名开头字母a-z排序
    //添加用户
    int addUser(@Param("user") User user);

    //根据用户id增加登录次数
    int addLoginCount(@Param("uid") int uid);

    //检查用户名是否存在
    int checkUname(@Param("userName") String userName, @Param("userId") int userId);

    //检查邮箱是否存在
    int checkUemail(@Param("userEmail") String userEmail, @Param("userId") int userId);

    //检查手机号是否存在
    int checkUphone(@Param("userPhone") String userPhone, @Param("userId") int userId);

    //根据用户id修改密码
    int fixPass(@Param("uid") int uid, @Param("newpass") String newPass);

    //获取最新用户的id
    int getNewUserId();

    //获取所有用户
    List<User> getAll();

    //获取管理员数量
    int getOpNum();

    //根据用户id获得用户对象
    User getUserById(@Param("uid") int uid);

    //根据用户名获得用户对象
    User getUserByName(@Param("uname") String uname);

    //登录
    User login(@Param("userInfo") String userInfo, @Param("loginType") String loginType);

    //根据用户id上传头像
    int uploadImgById(@Param("user") User user);

    //更新用户信息
    int updateInfo(@Param("user") User user);
}
